#include <bits/stdc++.h>

using namespace std;

#define N 100005

struct{
    int t = 0;
    int a[N];

    void push(int e){
        a[++t] = e;
    }

    void pop(){
        t--;
    }

    int top(){
        return a[t];
    }

    bool empty(){
        return t == 0?true:false;
    }
}s;

int h[N], ans[N];

int main(){
    int n;
    cin >> n;

    for (int i = 1; i <= n; i++){
        cin >> h[i];
    }

    for (int i = n; i >= 1; i--){
        while (!s.empty() && h[s.top()] <= h[i]){
            s.pop();
        }

        if (s.empty()){
            ans[i] = 0;
        }
        else{
            ans[i] = s.top();
        }
        
        s.push(i);
    }

    for (int i = 1; i <= n; i++){
        cout << ans[i] << " ";
    }

    return 0;
}